<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        /*
        第五周
            this指向
            改变this
            原型-
            原型链-
            继承--
            闭包--
            防抖和节流----封装防抖
            事件轮训--eventloop -- 同步和异步---
            设计模式--单例--观察者--
            堆和栈--基础类型和复杂 储存的区别
            深拷贝（lodash-JSON-递归——weakmap）和浅拷贝（展开运算符）
            vue响应式的原理--vue2-defineProperty 
                           --vue3 proxy
            spa 
            前端路由--hash  历史
            ajax--xhr  new  open  send onload   和  fetch-支持promise api  
            ajax-todolist --
            post请求--请求体--json字符串--wwwform搜索字符串--formData 
            接口测试工具 --postman-apipost
            ajax-封装-xhr --回调函数
            回调地狱-多个请求有顺序-
            promise--解决回调地狱
                   --使用的时候 创建promsie对象，这个构造函数有一个参数函数-，
                    这个参数函数又有两个形参-resolve reject， 参数函数内部 发起异步操作
                        异步操作成功以后调用resolve（结果）  失败调用reject
                        最后得到一个promise对象，promise。then  promise。catch

                   --本质 状态机--记录内部的异步操作的状态
                        创建以后进行中
                        调用resolve  成功状态
                        调用reject 失败状态
                        状态不可逆
                   --发起请求--axios
                   --封装延时器
                   --实例方法-then  -catch  finally  
                   --静态方法--resolve --reject-- 
                   let p0 = Promise.all([p1,p2])
                   --race 

               axios--发起请求（掌握--项目）   、
               
              let http =  axios.create（{请求配置}）
              http.get() post patch  delete
              动态id-搜索参数 --》url


              restful api 规范 


              async -await  --回调地狱 终极版本的解决方法(异步回调写法-改成了同步的写法)
              await 只能用在async 修饰函数内部
              await 后面只能promise对象，await 会等 后面的promise成功以后才会往下执行
                并且会把成功的结果 交给await 前面的返回值
                缺点：不能监听失败--配合 try-catch解决这个问题

                let r = await axios.get()
                log(r)

            token --身份令牌--登录成功以后返回--存入本地--请求之前设置在 请求头中


            ajax综合案例--axios--登录-注册-列表-详情--购物车--添加-修改-删除-列表

          cookie--localstorage 区别   

        跨域：
            1- cors 服务器配置响应头
            2- 代理服务器
                （nginx 服务器--配置--）
                    ssh工具远程链接到 nginx服务器（类liunx服务器-命令）
                    修改nginx的配置文件
            3- 代理插件
            4- jsonp --script标签的src属性
            5- websocket
            6- 还有。。。其他  postMessage      
                 


            

         nodejs---
            当做工具--辅助工具---使用安装第三方库
             会安装nodejs
             会使用npm（cnpm pnpm）    切换软件源--npmmirror

             npm init
             npm i axios 
             npm i nodemon -D
             npm i nodemon -g 

             npm i--npm install

             npm 脚本  package。json 配置 sciprts:{"dev":""  start:""}
                npm run dev 
                npm  start


         nodejs 中了解的
            后端--框架express
                后端路由
                    app。get('/',function(){})

                数据库--    User.create  delete  update  find 

                服务端渲染--模板引擎--ejs --》模板语法-写页面的内容--  shopify-





                   
                        
                        






                https://blog.csdn.net/qq_46344419/article/details/131952523
                    
               http://xx_domain.com->http://github.com


                http://xx_domain.com->  
                    http://xx_domain.com:8080=>  8080-访问 >http://github.com  得到数据 
                        返回给http://xx_domain.com


                a






        
        */
    </script>

</body>

</html>